package com.wl.designpattern.state;

/**
 * 状态模式
 *
 * State (+handle) 接口 定义状态和行为
 * ConcreteState1、ConcreteState2 具体状态角色
 * Context 定义客户端需要的接口，负责状态的切换 （环境角色）
 *
 * 应用场景
 * 对象的行为取决于其状态，随着状态改变时其行为也需改变
 * 包含大量的与状态相关的条件判断语句时
 *
 * 优点：易扩展
 * 缺点：子类会很多
 *
 * android应用
 * TODO
 *
 * Created by wangliang on 2021/2/22.
 */
public class Test {

    public static void main(String[] args) {
        Context context = new Context();

        context.fallInLove();
        context.movies();
        context.shopping();

        context.disappointmentInLove();
        context.movies();
        context.shopping();
    }
}
